package com.myapp.db.config.define;


public class DBOperation {
	// // 日志
	// private Logger log = Logger.getLogger(DBOperation1.class);
	//
	// /**
	// * 创建表
	// *
	// * @param <T>
	// * 数据库操作bean 的类
	// * @param DBConfigBean
	// * 表配置bean
	// * @return 返回操作条数
	// * @throws Exception
	// * 向上抛出错误
	// */
	// public <T extends BaseBean> void createTable(DBConfigBean dbConfigBean) {
	// // 获取sqlmap的命令空间
	// String sqlNamespace = dbConfigBean.getName();
	//
	// SqlSession sqlSession = Instances.getConnectionFactory()
	// .getDBConnection();
	// try {
	// sqlSession.update(sqlNamespace + ".createTable");
	// } catch (Exception e) {
	// log.error("Create Table Error", e);
	// System.exit(1);
	// } finally {
	// sqlSession.close();
	// }
	// }
	//
	// /**
	// * 删除表中所有的数据
	// *
	// * @param <T>
	// * 数据库操作bean 的类
	// * @param entity
	// * 数据库操作bean
	// * @return 返回操作条数
	// * @throws Exception
	// * 向上抛出错误
	// */
	// public <T extends BaseBean> void truncateTable(T entity) throws Exception
	// {
	// // 获取sqlmap的命令空间
	// String sqlNamespace = (Instances.getDBConfigContainer()
	// .getDBConfigBeanByEntity(entity.getClass())).getName();
	//
	// SqlSession sqlSession = Instances.getConnectionFactory()
	// .getDBConnection();
	// try {
	// sqlSession.update(sqlNamespace + ".truncateTable");
	// } catch (Exception e) {
	// log.error("Truncate Table Error", e);
	// throw e;
	// } finally {
	// sqlSession.close();
	// }
	// }
	//
	// /**
	// * 统计总数
	// *
	// * @param <T>
	// * 数据库操作bean 的类
	// * @param name
	// * SQLMap中的操作名字
	// * @param entity
	// * 数据库操作bean
	// * @return 返回操作条数
	// * @throws Exception
	// * 向上抛出错误
	// */
	// public <T extends BaseBean> int countAll(T entity) throws Exception {
	// // 获取sqlmap的命令空间
	// String sqlNamespace = (Instances.getDBConfigContainer()
	// .getDBConfigBeanByEntity(entity.getClass())).getName();
	//
	// SqlSession sqlSession = Instances.getConnectionFactory()
	// .getDBConnection();
	// int count = 0;
	// try {
	// Object tmp = sqlSession.selectOne(sqlNamespace + ".countAll");
	// if (tmp != null) {
	// count = Integer.parseInt(String.valueOf(tmp));
	// }
	// return count;
	// } catch (Exception e) {
	// log.error("Count All Error", e);
	// throw e;
	// } finally {
	// sqlSession.close();
	// }
	// }
	//
	// /**
	// * 获取最大id
	// *
	// * @param DBConfigBean
	// * 表配置bean
	// *
	// * @return 返回最大id
	// * @throws Exception
	// * 向上抛出错误
	// */
	// public long getMaxId(DBConfigBean dbConfigBean) {
	// // 获取sqlmap的命令空间
	// String sqlNamespace = dbConfigBean.getName();
	//
	// SqlSession sqlSession = Instances.getConnectionFactory()
	// .getDBConnection();
	// long count = 0;
	// try {
	// Object tmp = sqlSession.selectOne(sqlNamespace + ".getMaxId");
	// if (tmp != null) {
	// count = Long.parseLong(String.valueOf(tmp));
	// }
	// } catch (Exception e) {
	// log.error("select MapBean Error", e);
	// System.exit(1);
	// } finally {
	// sqlSession.close();
	// }
	// return count;
	// }
	//
	// /**
	// * 更新一个bean
	// *
	// * @param <T>
	// * 数据库操作bean 的类
	// * @param entity
	// * 数据库操作bean
	// * @return 返回操作条数
	// * @throws Exception
	// * 向上抛出错误
	// */
	// public <T extends BaseBean> int updateBean(T entity) throws Exception {
	// if (entity.getId() == 0) {
	// throw new IllegalArgumentException("Can't find id from eneity!");
	// }
	//
	// // 获取sqlmap的命令空间
	// String sqlNamespace = (Instances.getDBConfigContainer()
	// .getDBConfigBeanByEntity(entity.getClass())).getName();
	//
	// SqlSession sqlSession = Instances.getConnectionFactory()
	// .getDBConnection();
	// try {
	// int count = sqlSession.update(sqlNamespace + ".update", entity);
	// return count;
	// } catch (Exception e) {
	// log.error("Updata Bean Error", e);
	// throw e;
	// } finally {
	// sqlSession.close();
	// }
	// }
	//
	// /**
	// * 删除一个bean
	// *
	// * @param <T>
	// * 数据库操作bean 的类
	// * @param entity
	// * 数据库操作bean
	// * @return 返回操作条数
	// * @throws Exception
	// * 向上抛出错误
	// */
	// public <T extends BaseBean> int deleteBean(T entity) throws Exception {
	// if (entity.getId() == 0) {
	// throw new IllegalArgumentException("Can't find id from eneity!");
	// }
	//
	// // 获取sqlmap的命令空间
	// String sqlNamespace = (Instances.getDBConfigContainer()
	// .getDBConfigBeanByEntity(entity.getClass())).getName();
	//
	// SqlSession sqlSession = Instances.getConnectionFactory()
	// .getDBConnection();
	// try {
	// int count = sqlSession.delete(sqlNamespace + ".delete", entity);
	// return count;
	// } catch (Exception e) {
	// log.error("Delete Bean Error", e);
	// throw e;
	// } finally {
	// sqlSession.close();
	// }
	// }
	//
	// /**
	// * 插入一个bean
	// *
	// * @param <T>
	// * 数据库操作bean 的类
	// * @param entity
	// * 数据库操作bean
	// * @return 返回操作条数
	// * @throws Exception
	// * 向上抛出错误
	// */
	// public <T extends BaseBean> int insertBean(T entity) throws Exception {
	// if (entity.getId() == 0) {// 如果id为空时，自动添加一个id
	// entity.setId(Instances.getIDRecord().getNextIdByClass(
	// entity.getClass()));
	// }
	//
	// // 获取sqlmap的命令空间
	// String sqlNamespace = (Instances.getDBConfigContainer()
	// .getDBConfigBeanByEntity(entity.getClass())).getName();
	//
	// SqlSession sqlSession = Instances.getConnectionFactory()
	// .getDBConnection();
	// try {
	// int count = sqlSession.insert(sqlNamespace + ".insert", entity);
	// return count;
	// } catch (Exception e) {
	// log.error("Insert Bean Error", e);
	// throw e;
	// } finally {
	// sqlSession.close();
	// }
	// }
	//
	// /**
	// * 获取所有数据
	// *
	// * @param <T>
	// * 数据库操作bean 的类
	// * @param entity
	// * 数据库操作bean
	// * @param order
	// * 需要排序时请自行拼接字符串，例子ORDER BY ID ASC；不需要传入null
	// * @param start
	// * 翻页的开始页数，不需要翻页时，填入-1
	// * @param count
	// * 每页个数，为-1时，此参数无效
	// *
	// * @return 返回所有数据
	// * @throws Exception
	// * 向上抛出错误
	// */
	// public <T extends BaseBean> List<T> findAll(T entity, String order,
	// int start, int count) throws Exception {
	// // 获取sqlmap的命令空间
	// String sqlNamespace = (Instances.getDBConfigContainer()
	// .getDBConfigBeanByEntity(entity.getClass())).getName();
	//
	// SqlSession sqlSession = Instances.getConnectionFactory()
	// .getDBConnection();
	//
	// Map<String, Object> param = new HashMap<String, Object>();
	//
	// if (order != null) {// 添加排序
	// param.put("order_", order);
	// }
	//
	// if (start != -1) {// 添加翻页
	// param.put("start_", start);
	// param.put("count_", count);
	// }
	// try {
	// return this.selectListBean(sqlNamespace + ".findAll", param);
	// } catch (Exception e) {
	// log.error("Find all Error", e);
	// throw e;
	// } finally {
	// sqlSession.close();
	// }
	// }
	//
	// /**
	// * 查询一个bean列表
	// *
	// * @param <T>
	// * 数据库操作bean 的类
	// * @param name
	// * SQLMap中的操作名字
	// * @param param
	// * 参数列表
	// * @return 返回操作条数
	// * @throws Exception
	// * 向上抛出错误
	// */
	// @SuppressWarnings("unchecked")
	// public <T extends BaseBean> List<T> selectListBean(String name,
	// Map<String, Object> param) throws Exception {
	// SqlSession sqlSession = Instances.getConnectionFactory()
	// .getDBConnection();
	// List<T> data = null;
	// try {
	// data = sqlSession.selectList(name, param);
	// return data;
	// } catch (Exception e) {
	// log.error("select ListBean Error", e);
	// throw e;
	// } finally {
	// sqlSession.close();
	// }
	// }
	//
	// /**
	// * 查询一个bean的Map
	// *
	// * @param <T>
	// * 数据库操作bean 的类
	// * @param name
	// * SQLMap中的操作名字
	// * @param param
	// * 参数列表
	// * @return 返回操作条数
	// * @throws Exception
	// * 向上抛出错误
	// */
	// @SuppressWarnings("unchecked")
	// public <T extends BaseBean> Map<Long, T> selectMapBean(String name,
	// Map<String, Object> param) throws Exception {
	// SqlSession sqlSession = Instances.getConnectionFactory()
	// .getDBConnection();
	// Map<Long, T> data = null;
	// try {
	// data = sqlSession.selectMap(name, param, "id");
	// return data;
	// } catch (Exception e) {
	// log.error("select MapBean Error", e);
	// throw e;
	// } finally {
	// sqlSession.close();
	// }
	// }

}
